SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[spGenerarPlanillaISS] 
@Anio Int,
@Mes Int
AS
SET NOCOUNT ON
Set Dateformat DMY

If Not Exists (Select * From tb_PlanillaISS Where @Mes = Mes And @Anio = Anio)
Begin

	Declare @Organizacion Int, @idLiquidacion Int, @Aporte Float, @Contribucion Float, @AjusteAporte Float, @AjusteContribucion Float, @TotalAporte Float, @TotalContribucion Float

	Declare Organizaciones Cursor Static For
	Select Organizacion, idLiquidacion From tb_Liquidaciones Where Month(Hasta) = @Mes And Year(Hasta) = @Anio 

	Open Organizaciones

	Fetch Next From Organizaciones Into @Organizacion, @idLiquidacion

	While @@Fetch_Status = 0
	Begin

		Select @Aporte = IsNull(Sum(MontoDescuento*PorcentajeSubsidio/100),0) 
		From tb_RegistroDeLiquidaciones RL, tb_ServiciosAgentes S, tb_SubServiciosAgentes SS, tb_Plazas P, tb_SubOrganizaciones SO, tb_Organizaciones O 
		Where Rl.Servicio = idServicioAgente And ServicioAgente = idServicioAgente And IdPlaza = Plaza And P.Organizacion = idOrganizaciones And Org = IdOrganizaciones And SS.idSubServicio = (Select max(idSubServicio)  From tb_SubServiciosAgentes Where ServicioAgente = idServicioAgente) And P.SubOrganizacion = So.idSubOrganizacion 
		And Liquidacion  = @IdLiquidacion And Concepto In (10)

		--Select @Aporte = IsNull(Sum(MontoDescuento),0) 
		--From tb_RegistroDeLiquidaciones RL, tb_ServiciosAgentes S, tb_SubServiciosAgentes SS, tb_Plazas P, tb_SubOrganizaciones SO, tb_Organizaciones O 
		--Where Rl.Servicio = idServicioAgente And ServicioAgente = idServicioAgente And IdPlaza = Plaza And P.Organizacion = idOrganizaciones And Org = IdOrganizaciones And SS.idSubServicio = (Select max(idSubServicio)  From tb_SubServiciosAgentes Where ServicioAgente = idServicioAgente) And P.SubOrganizacion = So.idSubOrganizacion And So.Nivel = 3
		--And Liquidacion  = @IdLiquidacion And Concepto In (10) And S.CargoSalarial <> 1

		--Select @Contribucion = IsNull(Sum(MontoDescuento),0) 
		--From tb_RegistroDeLiquidaciones RL, tb_ServiciosAgentes S, tb_SubServiciosAgentes SS, tb_Plazas P, tb_SubOrganizaciones SO, tb_Organizaciones O 
		--Where Rl.Servicio = idServicioAgente And ServicioAgente = idServicioAgente And IdPlaza = Plaza And P.Organizacion = idOrganizaciones And Org = IdOrganizaciones And SS.idSubServicio = (Select max(idSubServicio)  From tb_SubServiciosAgentes Where ServicioAgente = idServicioAgente) And P.SubOrganizacion = So.idSubOrganizacion And So.Nivel = 3
		--And Liquidacion  = @IdLiquidacion And Concepto In (11) And S.CargoSalarial <> 1

		Select @Contribucion = IsNull(Sum(MontoDescuento*PorcentajeSubsidio/100),0) 
		From tb_RegistroDeLiquidaciones RL, tb_ServiciosAgentes S, tb_SubServiciosAgentes SS, tb_Plazas P, tb_SubOrganizaciones SO, tb_Organizaciones O 
		Where Rl.Servicio = idServicioAgente And ServicioAgente = idServicioAgente And IdPlaza = Plaza And P.Organizacion = idOrganizaciones And Org = IdOrganizaciones And SS.idSubServicio = (Select max(idSubServicio)  From tb_SubServiciosAgentes Where ServicioAgente = idServicioAgente) And P.SubOrganizacion = So.idSubOrganizacion 
		And Liquidacion  = @IdLiquidacion And Concepto In (11)

		Select @AjusteAporte = 0, @AjusteContribucion = 0

		Select @TotalAporte = @Aporte
		Select @TotalContribucion =@Contribucion	
	
		Insert tb_PlanillaISS 
		Select 
		(Select Cuise From tb_Organizaciones Where idOrganizaciones = @Organizacion),
		(Select Nombre From tb_Organizaciones Where idOrganizaciones = @Organizacion),
		@Aporte, @Contribucion, @AjusteAporte, @AjusteContribucion, @TotalAporte, @TotalContribucion, @Mes, @Anio, Getdate()


		Fetch Next From Organizaciones Into @Organizacion, @idLiquidacion
	End
	
	Close Organizaciones 
	Deallocate Organizaciones

End
GO
